#ifndef _KEY_H_
#define _KEY_H_

#include "Global.h"
#include "SC_GPIO.h"
#include "Config.h"
//---- ����IO�ڶ��� ----//
#define P_L1    DEF_PIN(C,0)
#define M_L1    DEF_PIN_DIR(C, 0)
#define WPU_L1  DEF_PIN_WPU(C, 0)


#define P_L2    DEF_PIN(C,1)
#define M_L2    DEF_PIN_DIR(C, 1)
#define WPU_L2  DEF_PIN_WPU(C, 1)


#define P_L3    DEF_PIN(A,0)
#define M_L3    DEF_PIN_DIR(A, 0)
#define WPU_L3  DEF_PIN_WPU(A, 0)

#define P_R1    DEF_PIN(B,6)
#define M_R1    DEF_PIN_DIR(B, 6)
#define WPU_R1  DEF_PIN_WPU(B, 6)

#define P_R2    DEF_PIN(B,7)
#define M_R2    DEF_PIN_DIR(B, 7)
#define WPU_R2  DEF_PIN_WPU(B, 7)

#define P_R3    DEF_PIN(A,7)
#define M_R3    DEF_PIN_DIR(A, 7)
#define WPU_R3  DEF_PIN_WPU(A, 7)

#define P_R4    DEF_PIN(A,6)
#define M_R4    DEF_PIN_DIR(A, 6)
#define WPU_R4  DEF_PIN_WPU(A, 6)

// #define SET_IN(pin)      do{P_##pin = 1;  M_##pin = 1; WPU_##pin = 1;} while(0)
// #define SET_OUT(pin,hl)  do{P_##pin = hl; M_##pin = 0; WPU_##pin = 0;} while(0)
// #define GET_PIN(pin)    P_##pin


enum
{
    KEY_NONE = 0,
    KEY1 ,
    KEY2 ,
    KEY3 ,
    KEY4 ,
    KEY5 ,
    KEY6 ,
    KEY7 ,
    KEY8 ,
    KEY9 ,
    KEY10 ,
    KEY11 ,
    KEY12 ,
    KEY_COMBO1,         // 停止+翻盖
    KEY_COMBO2,         // 停止+一键清洗 
    KEY_COMBO3,         // 停止+烘干
    KEY_COMBO4,         // 停止+冲水
    KEY_COMBO5,         // 停止+开关圈
    KEY_COMBO6,         // 停止+童洗
    KEY_COMBO7,         // 停止+泡沫盾
    KEY_COMBO8,         // 停止+妇洗
    KEY_COMBO9,         // 停止+臀洗
};


#define KEY_TINGZHI     KEY1
#define KEY_TUNXI       KEY2
#define KEY_FUXI        KEY3
#define KEY_TONGXI      KEY4
#define KEY_FANGAI      KEY9
#define KEY_CHONGSHUI   KEY5
#define KEY_YIJIANQINGXI KEY6
#define KEY_HONGGAN     KEY7
#define KEY_PAOMODUN    KEY8
#define KEY_FANQUAN     KEY10


#define C_TM_DLY_KEY_SCAN   20      //---- 
#define	TM_DBC_KEY		    10      //----
#define C_MAX_KEY_PRESS     2       //---- 
#define C_MAX_KEY_NUM       (12+12)  //---- 
#define INVAILD_KEY         0xFF    //----

// extern void(*KeyShortFunc[18])(void);
// extern void(*KeyLongFunc[18])(void);

extern uint8 RKeyCode;


void initKEY(uint8 type);
void Key_PowerSaveSet(void);
void Key_Main(void);
void MultiKey_Proc(void);

#endif

